Skip to content

Method: static {...}

1: package auftraege.factory;
2:
3: import auftraege.auftragsBildungsParameter.KuvertFormate;
4: import util.Constants;
5: import util.exceptions.ExceptionConstants;
6:
7: import java.util.Arrays;
8: import java.util.stream.Collectors;
9:
10: /**
11: * Ist in der Lage, {@link material.kuvert.KuvertFormat KuvertFormat} zu erstellen.
12: */
13: public enum KuvertFormateFactory implements DirectProduktionsauftragsParameterFactory {
14: INSTANCE;
15:
16: @Override
17: public KuvertFormate parse(final String wert) {
18:
19: if (wert.startsWith(Constants.AUSRUFEZEICHEN)) {
20: return KuvertFormate.createMitVerbotenen(Arrays.stream(wert.split(Constants.KOMMA)).map(String::trim).map(s -> {
21: if (!s.startsWith(Constants.AUSRUFEZEICHEN)) {
22: throw new IllegalArgumentException(ExceptionConstants.WENN_EINER_MIT_AUSRUFEZEICHEN_STARTET_MUESSEN_DAS_AUCH_ALLE);
23: } else {
24: return s.substring(1);
25: }
26: }).map(KuvertFormatFactory.INSTANCE::parse).collect(Collectors.toList()));
27: } else {
28: return KuvertFormate.createMitErlaubten(Arrays.stream(wert.split(Constants.KOMMA)).map(String::trim).map(s -> {
29: if (s.startsWith(Constants.AUSRUFEZEICHEN)) {
30: throw new IllegalArgumentException(ExceptionConstants.WENN_EINER_MIT_AUSRUFEZEICHEN_STARTET_MUESSEN_DAS_AUCH_ALLE);
31: } else {
32: return s;
33: }
34: }).map(KuvertFormatFactory.INSTANCE::parse).collect(Collectors.toList()));
35: }
36: }
37: }